package cn.aitstone.org.service;

import cn.aitstone.basic.utils.PageList;
import cn.aitstone.org.domain.Employee;
import cn.aitstone.org.query.EmployeeQuery;

import java.util.List;

/**
 * @Description: service层接口
 * @Author: Sheldon
 * @Version: 1.0
 * @Date:  2022/6/21 19:36
 */
public interface IEmployeeService {
    /**
    * @Title: loadAll
    * @Description: 查询所有
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/21 19:37
    * @Parameters: []
    * @Return java.util.List<cn.aitstone.org.domain.Employee>
    */
    List<Employee> loadAll();


    /**
    * @Title: loadById
    * @Description:  根据Id查询
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/21 19:37
    * @Parameters: [id]
    * @Return cn.aitstone.org.domain.Employee
    */
    Employee loadById(Long id);

    /**
    * @Title: remove
    * @Description: 根据Id删除
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/21 19:37
    * @Parameters: [id]
    * @Return void
    */
    void remove(Long id);

    /**
    * @Title: save
    * @Description: 新增
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/21 19:38
    * @Parameters: [employee]
    * @Return void
    */
    void save(Employee employee);

    /**
    * @Title: update
    * @Description: 根据Id修改
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/21 19:38
    * @Parameters: [employee]
    * @Return void
    */
    void update(Employee employee);

    /**
    * @Title: queryData
    * @Description: 分页+高级查询
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/21 19:38
    * @Parameters: [employeeQuery]
    * @Return cn.aitstone.basic.utils.PageList<cn.aitstone.org.domain.Employee>
    */
    PageList<Employee> queryData(EmployeeQuery employeeQuery);

    void batchdel(Long[] ids);

    Employee loadByLogininfoId(Long id);

    List<Employee> loadByShopId(Long shopId);
}
